package cn.mazexal.exambg.common;

/**
 * @author: Mazexal
 * Date: 2021/9/21
 */
public enum GlobalApiError implements IApiError {
    /**
     * 没有权限
     */
    Unauthorized("UNAUTHORIZED", "没有权限"),

    /**
     * 令牌无效或已过期
     */
    TokenInvalid("TOKEN_INVALID", "登录已过期，请重新登录"),

    /**
     * 操作失败了，请重试
     */
    OperationFailed("OPERATION_FAILED", "操作失败了，请重试"),

    /**
     * 禁止访问
     */
    Forbidden("FORBIDDEN", "禁止访问"),

    /**
     * 内部服务器错误
     */
    ServerError("SERVER_ERROR", "服务器走神了，请稍后再试"),

    /**
     * 缺少参数或参数无效
     */
    BadRequest("BAD_REQUEST", "缺少参数或参数无效"),

    /**
     * 不支持该请求方式
     */
    MethodNotAllowed("METHOD_NOT_ALLOWED", "不支持该请求方式"),

    /**
     * 未找到该接口路径
     */
    NotFound("NOT_FOUND", "未找到该接口路径"),

    /**
     * 操作太频繁了
     */
    FrequencyLimit("FREQUENCY_LIMIT", "您操作太快了，喝杯咖啡休息下吧"),

    /**
     * 用户已注销
     */
    UserLogout("USER_LOGOUT", "用户已注销"),

    /**
     * 设备被封禁
     */
    DeviceForbidden("DEVICE_FORBIDDEN", "设备被封禁"),

    /**
     * IP被封禁
     */
    IpForbidden("IP_FORBIDDEN", "IP被封禁"),

    /**
     * 设备账号IP被封禁
     */
    DeviceIdIpForbidden("DEVICE_ID_IP_FORBIDDEN", "设备、账号、IP被封禁"),

    /**
     * 账号被封禁
     */
    AccountForbidden("ACCOUNT_FORBIDDEN", "账号被封禁"),

    /**
     * 配置不全
     */
    IncompleteConfiguration("INCOMPLETE_CONFIGURATION", "配置不全"),

    ;

    private String code;
    private String msg;
    GlobalApiError(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }


    /**
     * 错误代码
     *
     * @return
     */
    @Override
    public String getCode() {
        return code;
    }

    /**
     * 错误说明
     *
     * @return
     */
    @Override
    public String getMsg() {
        return msg;
    }
}
